import Vue from 'vue'
import Vuex from 'vuex'
import VueXAlong from 'vuex-along'
import cat from './module/cat'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userMenus: [],
    openTab: [],
    activeIndex: ""
  },
  mutations: {
    set_user_Menus(state, menus) {
      state.userMenus = menus;
    },
    //添加某个tab
    add_tabs(state, tab){
      console.log("tab", tab);
      console.log(state.openTab);
      let flag = state.openTab.find(e => e.route == tab.route);
      if(!flag){
        state.openTab.push(tab);
      }
    },
    //清空tab
    clear_tabs(state){
      state.openTab = [];
    },
    //移除某个tab
    remove_tabs(state, tab){
      console.log("tab", tab);
      console.log(state.openTab);
      state.openTab = state.openTab.filter((e) => {
        return tab != e.route;
      });
    },
    //设置激活tab
    set_active_index(state, indexPath){
      state.activeIndex = indexPath;
    }
  },
  actions: {
  },
  // plugins: [VueXAlong],
  plugins: [VueXAlong({
    name: 'openTab',     //存放在localStroage或者sessionStroage 中的名字
    local: false,      //是否存放在local中  false 不存放 如果存放按照下面session的配置配
    session: { list: [], isFilter: false } //如果值不为false 那么可以传递对象 其中 当isFilter设置为true时， list 数组中的值就会被过滤调,这些值不会存放在seesion或者local中
  })],
  modules: {
    cat
  }
})
